]> shimmer.witbreuk.eu Git - UltimateKEYS.git/blobdiff - autohotkey/UltimateKEYS (for AutoHotkey v1.1).ahk
Update README.md
[UltimateKEYS.git] / autohotkey / UltimateKEYS (for AutoHotkey v1.1).ahk
index b9987c95433b32050f16107d9f98f3f99ab7339e..9c96777a96fdb3d3557dec62e67e3672a4f87677 100644 (file)
@@ -1,6 +1,6 @@
-#Requires AutoHotkey v1.1
+#requires AutoHotkey v1.1
 
 
-; UltimateKEYS (for AutoHotkey v1.1).ahk - 2023-04-18
+; UltimateKEYS (for AutoHotkey v1.1).ahk - 2023-12-28
 
 ; Website :  www.ultimatekeys.info (pieter-degroote.github.io/UltimateKEYS/)
 
 
 ; Website :  www.ultimatekeys.info (pieter-degroote.github.io/UltimateKEYS/)
 
@@ -69,7 +69,6 @@ cmpAcuteAccent.item["y"] := "{u+00fd}"  ; (ý) y with acute
 cmpAcuteAccent.item["Y"] := "{u+00dd}"  ; (Ý) Y with acute
 cmpAcuteAccent.item["z"] := "{u+017a}"  ; (ź) z with acute
 cmpAcuteAccent.item["Z"] := "{u+0179}"  ; (Ź) Z with acute
 cmpAcuteAccent.item["Y"] := "{u+00dd}"  ; (Ý) Y with acute
 cmpAcuteAccent.item["z"] := "{u+017a}"  ; (ź) z with acute
 cmpAcuteAccent.item["Z"] := "{u+0179}"  ; (Ź) Z with acute
-cmpAcuteAccent.item[" "] := "{u+00b4}"  ; (´) acute accent
 
 
 ; Compose :  Grave Accent (`)
 
 
 ; Compose :  Grave Accent (`)
@@ -91,7 +90,6 @@ cmpGraveAccent.item["w"] := "{u+1e81}"  ; (ẁ) w with grave
 cmpGraveAccent.item["W"] := "{u+1e80}"  ; (Ẁ) W with grave
 cmpGraveAccent.item["y"] := "{u+1ef3}"  ; (ỳ) y with grave
 cmpGraveAccent.item["Y"] := "{u+1ef2}"  ; (Ỳ) Y with grave
 cmpGraveAccent.item["W"] := "{u+1e80}"  ; (Ẁ) W with grave
 cmpGraveAccent.item["y"] := "{u+1ef3}"  ; (ỳ) y with grave
 cmpGraveAccent.item["Y"] := "{u+1ef2}"  ; (Ỳ) Y with grave
-cmpGraveAccent.item[" "] := "{u+02cb}"  ; (ˋ) grave accent (modifier)
 
 
 ; Compose :  Diaeresis (")
 
 
 ; Compose :  Diaeresis (")
@@ -116,7 +114,6 @@ cmpDiaeresis.item["x"] := "{u+1e8d}"  ; (ẍ) x with diaeresis
 cmpDiaeresis.item["X"] := "{u+1e8c}"  ; (Ẍ) X with diaeresis
 cmpDiaeresis.item["y"] := "{u+00ff}"  ; (ÿ) y with diaeresis
 cmpDiaeresis.item["Y"] := "{u+0178}"  ; (Ÿ) Y with diaeresis
 cmpDiaeresis.item["X"] := "{u+1e8c}"  ; (Ẍ) X with diaeresis
 cmpDiaeresis.item["y"] := "{u+00ff}"  ; (ÿ) y with diaeresis
 cmpDiaeresis.item["Y"] := "{u+0178}"  ; (Ÿ) Y with diaeresis
-cmpDiaeresis.item[" "] := "{u+00a8}"  ; (¨) diaeresis
 
 
 ; Compose :  Circumflex Accent (c)
 
 
 ; Compose :  Circumflex Accent (c)
@@ -148,7 +145,6 @@ cmpCircumflex.item["y"] := "{u+0177}"  ; (ŷ) y with circumflex
 cmpCircumflex.item["Y"] := "{u+0176}"  ; (Ŷ) Y with circumflex
 cmpCircumflex.item["z"] := "{u+1e91}"  ; (ẑ) z with circumflex
 cmpCircumflex.item["Z"] := "{u+1e90}"  ; (Ẑ) Z with circumflex
 cmpCircumflex.item["Y"] := "{u+0176}"  ; (Ŷ) Y with circumflex
 cmpCircumflex.item["z"] := "{u+1e91}"  ; (ẑ) z with circumflex
 cmpCircumflex.item["Z"] := "{u+1e90}"  ; (Ẑ) Z with circumflex
-cmpCircumflex.item[" "] := "{u+02c6}"  ; (ˆ) circumflex accent (modifier)
 
 
 ; Compose :  Tilde (~)
 
 
 ; Compose :  Tilde (~)
@@ -172,7 +168,6 @@ cmpTilde.item["v"] := "{u+1e7d}"  ; (ṽ) v with tilde
 cmpTilde.item["V"] := "{u+1e7c}"  ; (Ṽ) V with tilde
 cmpTilde.item["y"] := "{u+1ef9}"  ; (ỹ) y with tilde
 cmpTilde.item["Y"] := "{u+1ef8}"  ; (Ỹ) Y with tilde
 cmpTilde.item["V"] := "{u+1e7c}"  ; (Ṽ) V with tilde
 cmpTilde.item["y"] := "{u+1ef9}"  ; (ỹ) y with tilde
 cmpTilde.item["Y"] := "{u+1ef8}"  ; (Ỹ) Y with tilde
-cmpTilde.item[" "] := "{u+02dc}"  ; (˜) small tilde
 
 
 ; Compose :  Cedilla and Ogonek (,)
 
 
 ; Compose :  Cedilla and Ogonek (,)
@@ -210,8 +205,6 @@ cmpCedillaOgonek.item["t"] := "{u+0163}"  ; (ţ) t with cedilla
 cmpCedillaOgonek.item["T"] := "{u+0162}"  ; (Ţ) T with cedilla
 cmpCedillaOgonek.item["u"] := "{u+0173}"  ; (ų) u with ogonek
 cmpCedillaOgonek.item["U"] := "{u+0172}"  ; (Ų) U with ogonek
 cmpCedillaOgonek.item["T"] := "{u+0162}"  ; (Ţ) T with cedilla
 cmpCedillaOgonek.item["u"] := "{u+0173}"  ; (ų) u with ogonek
 cmpCedillaOgonek.item["U"] := "{u+0172}"  ; (Ų) U with ogonek
-cmpCedillaOgonek.item["."] := "{u+02db}"  ; (˛) ogonek
-cmpCedillaOgonek.item[" "] := "{u+00b8}"  ; (¸) cedilla
 
 
 ; Compose :  Caron (v)
 
 
 ; Compose :  Caron (v)
@@ -252,7 +245,6 @@ cmpCaron.item["z"] := "{u+017e}"  ; (ž) z with caron
 cmpCaron.item["Z"] := "{u+017d}"  ; (Ž) Z with caron
 cmpCaron.item["3"] := "{u+01ef}"  ; (ǯ) small letter ezh with caron
 cmpCaron.item["#"] := "{u+01ee}"  ; (Ǯ) capital letter ezh with caron
 cmpCaron.item["Z"] := "{u+017d}"  ; (Ž) Z with caron
 cmpCaron.item["3"] := "{u+01ef}"  ; (ǯ) small letter ezh with caron
 cmpCaron.item["#"] := "{u+01ee}"  ; (Ǯ) capital letter ezh with caron
-cmpCaron.item[" "] := "{u+02c7}"  ; (ˇ) caron
 
 
 ; Compose :  Dot Above (.)
 
 
 ; Compose :  Dot Above (.)
@@ -354,7 +346,6 @@ cmpMacronStroke.item["y"] := "{u+0233}"  ; (ȳ) y with macron
 cmpMacronStroke.item["Y"] := "{u+0232}"  ; (Ȳ) Y with macron
 cmpMacronStroke.item["z"] := "{u+01b6}"  ; (ƶ) z with stroke
 cmpMacronStroke.item["Z"] := "{u+01b5}"  ; (Ƶ) Z with stroke
 cmpMacronStroke.item["Y"] := "{u+0232}"  ; (Ȳ) Y with macron
 cmpMacronStroke.item["z"] := "{u+01b6}"  ; (ƶ) z with stroke
 cmpMacronStroke.item["Z"] := "{u+01b5}"  ; (Ƶ) Z with stroke
-cmpMacronStroke.item[" "] := "{u+00af}"  ; (¯) macron
 
 
 ; Compose :  Macron and Stroke (additional) (_)
 
 
 ; Compose :  Macron and Stroke (additional) (_)
@@ -434,7 +425,6 @@ cmpBreveSpecial.item["y"] := "{u+021d}"  ; (ȝ) small letter yogh
 cmpBreveSpecial.item["Y"] := "{u+021c}"  ; (Ȝ) capital letter yogh
 cmpBreveSpecial.item["3"] := "{u+0292}"  ; (ʒ) small letter ezh
 cmpBreveSpecial.item["#"] := "{u+01b7}"  ; (Ʒ) capital letter ezh
 cmpBreveSpecial.item["Y"] := "{u+021c}"  ; (Ȝ) capital letter yogh
 cmpBreveSpecial.item["3"] := "{u+0292}"  ; (ʒ) small letter ezh
 cmpBreveSpecial.item["#"] := "{u+01b7}"  ; (Ʒ) capital letter ezh
-cmpBreveSpecial.item[" "] := "{u+02d8}"  ; (˘) breve
 
 
 ; Compose :  Double Acute Accent (=)
 
 
 ; Compose :  Double Acute Accent (=)
@@ -444,7 +434,6 @@ cmpDoubleAcute.item["o"] := "{u+0151}"  ; (ő) o with double acute
 cmpDoubleAcute.item["O"] := "{u+0150}"  ; (Ő) O with double acute
 cmpDoubleAcute.item["u"] := "{u+0171}"  ; (ű) u with double acute
 cmpDoubleAcute.item["U"] := "{u+0170}"  ; (Ű) U with double acute
 cmpDoubleAcute.item["O"] := "{u+0150}"  ; (Ő) O with double acute
 cmpDoubleAcute.item["u"] := "{u+0171}"  ; (ű) u with double acute
 cmpDoubleAcute.item["U"] := "{u+0170}"  ; (Ű) U with double acute
-cmpDoubleAcute.item[" "] := "{u+02dd}"  ; (˝) double acute accent
 
 
 ; Compose :  Hook and Horn (h)
 
 
 ; Compose :  Hook and Horn (h)
@@ -504,12 +493,11 @@ cmpSmallF.item["H"] := "{u+a726}"  ; (Ꜧ) capital letter heng
 cmpSmallF.item["j"] := "{u+029d}"  ; (ʝ) j with crossed-tail
 cmpSmallF.item["l"] := "{u+026d}"  ; (ɭ) l with retroflex hook
 cmpSmallF.item["n"] := "{u+0273}"  ; (ɳ) n with retroflex hook
 cmpSmallF.item["j"] := "{u+029d}"  ; (ʝ) j with crossed-tail
 cmpSmallF.item["l"] := "{u+026d}"  ; (ɭ) l with retroflex hook
 cmpSmallF.item["n"] := "{u+0273}"  ; (ɳ) n with retroflex hook
+cmpSmallF.item["q"] := "{u+02a0}"  ; (ʠ) q with hook
 cmpSmallF.item["r"] := "{u+027e}"  ; (ɾ) r with fishhook
 cmpSmallF.item["t"] := "{u+0288}"  ; (ʈ) t with retroflex hook
 cmpSmallF.item["T"] := "{u+01ae}"  ; (Ʈ) T with retroflex hook
 cmpSmallF.item["v"] := "{u+2c71}"  ; (ⱱ) v with right hook
 cmpSmallF.item["r"] := "{u+027e}"  ; (ɾ) r with fishhook
 cmpSmallF.item["t"] := "{u+0288}"  ; (ʈ) t with retroflex hook
 cmpSmallF.item["T"] := "{u+01ae}"  ; (Ʈ) T with retroflex hook
 cmpSmallF.item["v"] := "{u+2c71}"  ; (ⱱ) v with right hook
-cmpSmallF.item["w"] := "{u+2c73}"  ; (ⱳ) w with right hook
-cmpSmallF.item["W"] := "{u+2c72}"  ; (Ⱳ) W with right hook
 cmpSmallF.item["z"] := "{u+0290}"  ; (ʐ) z with retroflex hook
 
 
 cmpSmallF.item["z"] := "{u+0290}"  ; (ʐ) z with retroflex hook
 
 
@@ -539,10 +527,15 @@ cmpSmallL.item["N"] := "{u+0220}"  ; (Ƞ) capital letter N with long right leg
 cmpSmallL.item["o"] := "{u+0254}"  ; (ɔ) small letter open o
 cmpSmallL.item["O"] := "{u+0186}"  ; (Ɔ) capital letter open O
 cmpSmallL.item["q"] := "{u+0277}"  ; (ɷ) Latin small letter closed omega
 cmpSmallL.item["o"] := "{u+0254}"  ; (ɔ) small letter open o
 cmpSmallL.item["O"] := "{u+0186}"  ; (Ɔ) capital letter open O
 cmpSmallL.item["q"] := "{u+0277}"  ; (ɷ) Latin small letter closed omega
-cmpSmallL.item["s"] := "{u+0283}"  ; (ʃ) small letter esh
-cmpSmallL.item["S"] := "{u+01a9}"  ; (Ʃ) capital letter esh
+cmpSmallL.item["s"] := "{u+0283}"  ; (ʃ) Latin small letter esh
+cmpSmallL.item["S"] := "{u+01a9}"  ; (Ʃ) Latin capital letter esh
 cmpSmallL.item["u"] := "{u+028a}"  ; (ʊ) Latin small letter upsilon
 cmpSmallL.item["U"] := "{u+01b1}"  ; (Ʊ) Latin capital letter upsilon
 cmpSmallL.item["u"] := "{u+028a}"  ; (ʊ) Latin small letter upsilon
 cmpSmallL.item["U"] := "{u+01b1}"  ; (Ʊ) Latin capital letter upsilon
+cmpSmallL.item["8"] := "{u+0223}"  ; (ȣ) small letter ou
+cmpSmallL.item["*"] := "{u+0222}"  ; (Ȣ) capital letter OU
+cmpSmallL.item["7"] := "{u+0242}"  ; (ɂ) small letter glottal stop
+cmpSmallL.item["&"] := "{u+0241}"  ; (Ɂ) capital letter glottal stop
+cmpSmallL.item["?"] := "{u+0294}"  ; (ʔ) unicase letter glottal stop
 
 
 ; Compose :  Turned Letters (r)
 
 
 ; Compose :  Turned Letters (r)
@@ -620,7 +613,6 @@ cmpCurrency.item["W"] := "{u+20a9}"  ; (₩) South Korean won
 cmpCurrency.item["x"] := "{u+00a4}"  ; (¤) currency sign
 cmpCurrency.item["y"] := "{u+00a5}"  ; (¥) yen sign
 cmpCurrency.item["Y"] := "{u+00a5}"  ; (¥) yen sign
 cmpCurrency.item["x"] := "{u+00a4}"  ; (¤) currency sign
 cmpCurrency.item["y"] := "{u+00a5}"  ; (¥) yen sign
 cmpCurrency.item["Y"] := "{u+00a5}"  ; (¥) yen sign
-cmpCurrency.item[" "] := "{u+00a4}"  ; (¤) currency sign
 
 
 ; Compose :  Greek Alphabet (g)
 
 
 ; Compose :  Greek Alphabet (g)
@@ -663,8 +655,8 @@ cmpGreek.item["P"] := "{u+03a0}"  ; (Π) Greek capital pi
 cmpGreek.item["r"] := "{u+03c1}"  ; (ρ) Greek small rho
 cmpGreek.item["R"] := "{u+03a1}"  ; (Ρ) Greek capital rho
 cmpGreek.item["s"] := "{u+03c3}"  ; (σ) Greek small sigma
 cmpGreek.item["r"] := "{u+03c1}"  ; (ρ) Greek small rho
 cmpGreek.item["R"] := "{u+03a1}"  ; (Ρ) Greek capital rho
 cmpGreek.item["s"] := "{u+03c3}"  ; (σ) Greek small sigma
-cmpGreek.item["S"] := "{u+03a3}"  ; (Σ) Greek capital sigma
 cmpGreek.item[","] := "{u+03c2}"  ; (ς) Greek small final sigma
 cmpGreek.item[","] := "{u+03c2}"  ; (ς) Greek small final sigma
+cmpGreek.item["S"] := "{u+03a3}"  ; (Σ) Greek capital sigma
 cmpGreek.item["t"] := "{u+03c4}"  ; (τ) Greek small tau
 cmpGreek.item["T"] := "{u+03a4}"  ; (Τ) Greek capital tau
 cmpGreek.item["u"] := "{u+03c5}"  ; (υ) Greek small upsilon
 cmpGreek.item["t"] := "{u+03c4}"  ; (τ) Greek small tau
 cmpGreek.item["T"] := "{u+03a4}"  ; (Τ) Greek capital tau
 cmpGreek.item["u"] := "{u+03c5}"  ; (υ) Greek small upsilon
@@ -761,8 +753,8 @@ cmpSpace.item["8"] := "{u+200a}"  ; hair space
 cmpSpace.item["9"] := "{u+2007}"  ; figure space
 cmpSpace.item["0"] := "{u+200b}"  ; zero-width space (ZWSP)
 cmpSpace.item["m"] := "{u+205f}"  ; medium mathematical space (MMSP)
 cmpSpace.item["9"] := "{u+2007}"  ; figure space
 cmpSpace.item["0"] := "{u+200b}"  ; zero-width space (ZWSP)
 cmpSpace.item["m"] := "{u+205f}"  ; medium mathematical space (MMSP)
+cmpSpace.item["n"] := "{u+202f}"  ; narrow no-break space (NNBSP)
 cmpSpace.item[" "] := "{u+00a0}"  ; non-breaking space (NBSP)
 cmpSpace.item[" "] := "{u+00a0}"  ; non-breaking space (NBSP)
-cmpSpace.item["."] := "{u+202f}"  ; narrow no-break space (NNBSP)
 cmpMacronStroke.item["2"] := "{u+2013}"  ; (–) en dash
 cmpMacronStroke.item["3"] := "{u+2014}"  ; (—) em dash
 cmpMacronStroke.item["4"] := "{u+2015}"  ; (―) horizontal bar
 cmpMacronStroke.item["2"] := "{u+2013}"  ; (–) en dash
 cmpMacronStroke.item["3"] := "{u+2014}"  ; (—) em dash
 cmpMacronStroke.item["4"] := "{u+2015}"  ; (―) horizontal bar
@@ -774,7 +766,7 @@ cmpQuad.item["2"] := "{u+2000}"  ; en quad
 cmpQuad.item["3"] := "{u+2001}"  ; em quad
 
 
 cmpQuad.item["3"] := "{u+2001}"  ; em quad
 
 
-; Compose :  Arrows and Pointers
+; Compose :  Arrows and Pointing Triangles
 
 cmpArrow := ComObjCreate("Scripting.Dictionary")
 cmpArrow.item["w"] := "{u+25b2}"  ; (▲) black up-pointing triangle
 
 cmpArrow := ComObjCreate("Scripting.Dictionary")
 cmpArrow.item["w"] := "{u+25b2}"  ; (▲) black up-pointing triangle
@@ -881,18 +873,20 @@ cmpMathSymbols.item["U"] := "{u+2216}"  ; (∖) set minus
 cmpMathSymbols.item["w"] := "{u+2118}"  ; (℘) Weierstrass elliptic function
 cmpMathSymbols.item["z"] := "{u+21af}"  ; (↯) downwards zigzag arrow
 cmpMathSymbols.item["Z"] := "{u+2124}"  ; (ℤ) whole numbers
 cmpMathSymbols.item["w"] := "{u+2118}"  ; (℘) Weierstrass elliptic function
 cmpMathSymbols.item["z"] := "{u+21af}"  ; (↯) downwards zigzag arrow
 cmpMathSymbols.item["Z"] := "{u+2124}"  ; (ℤ) whole numbers
+cmpMathSymbols.item["2"] := "{u+2236}"  ; (∶) ratio symbol
+cmpMathSymbols.item["4"] := "{u+2237}"  ; (∷) proportion sign
 cmpMathSymbols.item["6"] := "{u+2220}"  ; (∠) angle symbol
 cmpMathSymbols.item["6"] := "{u+2220}"  ; (∠) angle symbol
-cmpMathSymbols.item["&"] := "{u+2227}"  ; (∧) logical and
-cmpMathSymbols.item["8"] := "{u+2297}"  ; (⊗) circled times
-cmpMathSymbols.item["*"] := "{u+2299}"  ; (⊙) circled dot operator
 cmpMathSymbols.item["9"] := "{u+221f}"  ; (∟) right angle
 cmpMathSymbols.item["0"] := "{u+2221}"  ; (∡) measured angle
 cmpMathSymbols.item["+"] := "{u+2295}"  ; (⊕) circled plus
 cmpMathSymbols.item["-"] := "{u+2296}"  ; (⊖) circled minus
 cmpMathSymbols.item["9"] := "{u+221f}"  ; (∟) right angle
 cmpMathSymbols.item["0"] := "{u+2221}"  ; (∡) measured angle
 cmpMathSymbols.item["+"] := "{u+2295}"  ; (⊕) circled plus
 cmpMathSymbols.item["-"] := "{u+2296}"  ; (⊖) circled minus
+cmpMathSymbols.item["*"] := "{u+2297}"  ; (⊗) circled times
 cmpMathSymbols.item["/"] := "{u+2298}"  ; (⊘) circled division slash
 cmpMathSymbols.item["/"] := "{u+2298}"  ; (⊘) circled division slash
+cmpMathSymbols.item["."] := "{u+2299}"  ; (⊙) circled dot operator
 cmpMathSymbols.item["="] := "{u+225d}"  ; (≝) equal to by definition
 cmpMathSymbols.item[";"] := "{u+2235}"  ; (∵) because sign
 cmpMathSymbols.item[":"] := "{u+2234}"  ; (∴) therefore sign
 cmpMathSymbols.item["="] := "{u+225d}"  ; (≝) equal to by definition
 cmpMathSymbols.item[";"] := "{u+2235}"  ; (∵) because sign
 cmpMathSymbols.item[":"] := "{u+2234}"  ; (∴) therefore sign
+cmpMathSymbols.item["&"] := "{u+2227}"  ; (∧) logical and
 cmpMathSymbols.item["|"] := "{u+2228}"  ; (∨) logical or
 
 
 cmpMathSymbols.item["|"] := "{u+2228}"  ; (∨) logical or
 
 
@@ -930,7 +924,6 @@ cmpCapitalT.item["H"] := "{u+00de}"   ; (Þ) capital letter thorn
 
 cmpDigitEight := ComObjCreate("Scripting.Dictionary")
 cmpCapitalP := ComObjCreate("Scripting.Dictionary")
 
 cmpDigitEight := ComObjCreate("Scripting.Dictionary")
 cmpCapitalP := ComObjCreate("Scripting.Dictionary")
-cmpSemicolon := ComObjCreate("Scripting.Dictionary")
 cmpAsterisk := ComObjCreate("Scripting.Dictionary")
 cmpExclam := ComObjCreate("Scripting.Dictionary")
 cmpQuestion := ComObjCreate("Scripting.Dictionary")
 cmpAsterisk := ComObjCreate("Scripting.Dictionary")
 cmpExclam := ComObjCreate("Scripting.Dictionary")
 cmpQuestion := ComObjCreate("Scripting.Dictionary")
@@ -955,14 +948,6 @@ cmpSmallR.item["4"] := "{u+221c}"        ; (∜) fourth root
 cmpSymbols.item["o"] := "{u+00a7}"       ; (§) section sign
 cmpCapitalS.item["o"] := "{u+00a7}"      ; (§) section sign
 cmpSmallT.item["m"] := "{u+2122}"        ; (™) trademark symbol
 cmpSymbols.item["o"] := "{u+00a7}"       ; (§) section sign
 cmpCapitalS.item["o"] := "{u+00a7}"      ; (§) section sign
 cmpSmallT.item["m"] := "{u+2122}"        ; (™) trademark symbol
-cmpSemicolon.item["b"] := "{u+2022}"     ; (•) bullet
-cmpSemicolon.item[";"] := "{u+2022}"     ; (•) bullet
-cmpSemicolon.item["t"] := "{u+2023}"     ; (‣) triangular bullet
-cmpSemicolon.item[">"] := "{u+2023}"     ; (‣) triangular bullet
-cmpSemicolon.item["h"] := "{u+2043}"     ; (⁃) hyphen bullet
-cmpSemicolon.item["-"] := "{u+2043}"     ; (⁃) hyphen bullet
-cmpSemicolon.item["w"] := "{u+25e6}"     ; (◦) white bullet
-cmpSemicolon.item["o"] := "{u+25e6}"     ; (◦) white bullet
 cmpAcuteAccent.item["1"] := "{u+2032}"   ; (′) prime
 cmpAcuteAccent.item["2"] := "{u+2033}"   ; (″) double prime
 cmpAcuteAccent.item["3"] := "{u+2034}"   ; (‴) triple prime
 cmpAcuteAccent.item["1"] := "{u+2032}"   ; (′) prime
 cmpAcuteAccent.item["2"] := "{u+2033}"   ; (″) double prime
 cmpAcuteAccent.item["3"] := "{u+2034}"   ; (‴) triple prime
@@ -972,7 +957,6 @@ cmpStroke.item["/"] := "{u+00f7}"        ; (÷) division sign
 cmpAsterisk.item["o"] := "{u+00b0}"      ; (°) degree sign
 cmpRingAbove.item["*"] := "{u+00b0}"     ; (°) degree sign
 cmpDotAbove.item["."] := "{u+00b7}"      ; (·) middle dot
 cmpAsterisk.item["o"] := "{u+00b0}"      ; (°) degree sign
 cmpRingAbove.item["*"] := "{u+00b0}"     ; (°) degree sign
 cmpDotAbove.item["."] := "{u+00b7}"      ; (·) middle dot
-cmpDotAbove.item[" "] := "{u+00b7}"      ; (·) middle dot
 cmpDotAbove.item["3"] := "{u+2026}"      ; (…) horizontal ellipsis
 cmpArrow.item["-"] := "{u+00aa}"         ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician)
 cmpRingAbove.item["-"] := "{u+00ba}"     ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)
 cmpDotAbove.item["3"] := "{u+2026}"      ; (…) horizontal ellipsis
 cmpArrow.item["-"] := "{u+00aa}"         ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician)
 cmpRingAbove.item["-"] := "{u+00ba}"     ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)
@@ -998,6 +982,26 @@ cmpGreaterThan.item["+"] := "{u+2a7e}"   ; (⩾) greater-than or slanted equal t
 cmpTilde.item["~"] := "{u+2248}"         ; (≈) almost equal to
 
 
 cmpTilde.item["~"] := "{u+2248}"         ; (≈) almost equal to
 
 
+; Compose :  Bullets and Small Geometric Shapes (;)
+
+cmpSemicolon := ComObjCreate("Scripting.Dictionary")
+cmpSemicolon.item["b"] := "{u+2022}"  ; (•) bullet
+cmpSemicolon.item["o"] := "{u+25e6}"  ; (◦) white bullet
+cmpSemicolon.item["h"] := "{u+2043}"  ; (⁃) hyphen bullet
+cmpSemicolon.item["t"] := "{u+2023}"  ; (‣) triangular bullet
+cmpSemicolon.item["q"] := "{u+25aa}"  ; (▪) black small square
+cmpSemicolon.item["u"] := "{u+25ab}"  ; (▫) white small square
+cmpSemicolon.item["w"] := "{u+25b4}"  ; (▴) black up-pointing small triangle
+cmpSemicolon.item["a"] := "{u+25c2}"  ; (◂) black left-pointing small triangle
+cmpSemicolon.item["s"] := "{u+25be}"  ; (▾) black down-pointing small triangle
+cmpSemicolon.item["d"] := "{u+25b8}"  ; (▸) black right-pointing small triangle
+cmpSemicolon.item["i"] := "{u+25b5}"  ; (▵) white up-pointing small triangle
+cmpSemicolon.item["j"] := "{u+25c3}"  ; (◃) white left-pointing small triangle
+cmpSemicolon.item["k"] := "{u+25bf}"  ; (▿) white down-pointing small triangle
+cmpSemicolon.item["l"] := "{u+25b9}"  ; (▹) white right-pointing small triangle
+cmpSemicolon.item[";"] := "{u+2022}"  ; (•) bullet
+
+
 ; Compose :  Vulgar Fractions
 
 cmpDigitOne := ComObjCreate("Scripting.Dictionary")
 ; Compose :  Vulgar Fractions
 
 cmpDigitOne := ComObjCreate("Scripting.Dictionary")
@@ -1037,6 +1041,7 @@ cmpCedillaOgonek.item[chr(34)] := "{u+201e}"  ; („) double low-9 quotation mar
 cmpDiaeresis.item[","] := "{u+201e}"          ; („) double low-9 quotation mark
 cmpCedillaOgonek.item["'"] := "{u+201a}"      ; (‚) single low-9 quotation mark
 cmpAcuteAccent.item[","] := "{u+201a}"        ; (‚) single low-9 quotation mark
 cmpDiaeresis.item[","] := "{u+201e}"          ; („) double low-9 quotation mark
 cmpCedillaOgonek.item["'"] := "{u+201a}"      ; (‚) single low-9 quotation mark
 cmpAcuteAccent.item[","] := "{u+201a}"        ; (‚) single low-9 quotation mark
+cmpCedillaOgonek.item[","] := "{u+201a}"      ; (‚) single low-9 quotation mark
 cmpDiaeresis.item["["] := "{u+201c}"          ; (“) left double quotation mark
 cmpBracketLeft.item[chr(34)] := "{u+201c}"    ; (“) left double quotation mark
 cmpDiaeresis.item["]"] := "{u+201d}"          ; (”) right double quotation mark
 cmpDiaeresis.item["["] := "{u+201c}"          ; (“) left double quotation mark
 cmpBracketLeft.item[chr(34)] := "{u+201c}"    ; (“) left double quotation mark
 cmpDiaeresis.item["]"] := "{u+201d}"          ; (”) right double quotation mark
@@ -1265,6 +1270,8 @@ cmpDigitTwo.item["s"] := "{u+2691}"  ; (⚑) black flag
 cmpDigitTwo.item["t"] := "{u+26a0}"  ; (⚠) warning sign
 cmpDigitTwo.item["u"] := "{u+26a1}"  ; (⚡) high voltage sign
 cmpDigitTwo.item["v"] := "{u+26d4}"  ; (⛔) no entry
 cmpDigitTwo.item["t"] := "{u+26a0}"  ; (⚠) warning sign
 cmpDigitTwo.item["u"] := "{u+26a1}"  ; (⚡) high voltage sign
 cmpDigitTwo.item["v"] := "{u+26d4}"  ; (⛔) no entry
+cmpDigitTwo.item["w"] := "{u+231a}"  ; (⌚) watch
+cmpDigitTwo.item["x"] := "{u+231b}"  ; (⌛) hourglass
 
 cmpDigitThree.item["a"] := "{u+2701}"  ; (✁) upper blade scissors
 cmpDigitThree.item["b"] := "{u+2702}"  ; (✂) black scissors
 
 cmpDigitThree.item["a"] := "{u+2701}"  ; (✁) upper blade scissors
 cmpDigitThree.item["b"] := "{u+2702}"  ; (✂) black scissors
@@ -1877,14 +1884,16 @@ cmpSmallN.item["0"] := "{u+277f}"  ; (❿) dingbat negative circled digit 10
 >!/::Send {u+00bf}   ; (¿) inverted question mark
 >!?::Send {u+2026}   ; (…) horizontal ellipsis
 
 >!/::Send {u+00bf}   ; (¿) inverted question mark
 >!?::Send {u+2026}   ; (…) horizontal ellipsis
 
->!space::Send {u+00a0}   ; non-breaking space (NBSP)
->!+space::Send {u+00a0}  ; non-breaking space (NBSP)
+>!space::Send {u+00a0}   ;     non-breaking space (NBSP)
+>!+space::Send {u+2022}  ; (•) bullet
 
 
 ; Configuration :  Compose Key Selector
 
 >!`::
 
 
 ; Configuration :  Compose Key Selector
 
 >!`::
+>!~::
 >!sc056::
 >!sc056::
+>!+sc056::
   Input, keyA, L1, {bs}{del}{esc}{home}{end}
   Input, keyB, L1, {bs}{del}{esc}{home}{end}
 
   Input, keyA, L1, {bs}{del}{esc}{home}{end}
   Input, keyB, L1, {bs}{del}{esc}{home}{end}
 
@@ -1966,8 +1975,6 @@ cmpSmallN.item["0"] := "{u+277f}"  ; (❿) dingbat negative circled digit 10
     Send % cmpCapitalT.item[keyB]
   else if (keyA == "P")
     Send % cmpCapitalP.item[keyB]
     Send % cmpCapitalT.item[keyB]
   else if (keyA == "P")
     Send % cmpCapitalP.item[keyB]
-  else if (keyA == ";")
-    Send % cmpSemicolon.item[keyB]
   else if (keyA == "*")
     Send % cmpAsterisk.item[keyB]
   else if (keyA == "!")
   else if (keyA == "*")
     Send % cmpAsterisk.item[keyB]
   else if (keyA == "!")
@@ -1986,6 +1993,8 @@ cmpSmallN.item["0"] := "{u+277f}"  ; (❿) dingbat negative circled digit 10
     Send % cmpLessThan.item[keyB]
   else if (keyA == ">")
     Send % cmpGreaterThan.item[keyB]
     Send % cmpLessThan.item[keyB]
   else if (keyA == ">")
     Send % cmpGreaterThan.item[keyB]
+  else if (keyA == ";")
+    Send % cmpSemicolon.item[keyB]
   else if (keyA == "1")
     Send % cmpDigitOne.item[keyB]
   else if (keyA == "2")
   else if (keyA == "1")
     Send % cmpDigitOne.item[keyB]
   else if (keyA == "2")